package com.software.levelupandroid.entity;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * @Description 任务的实体类
 * @Author LiangYaJie
 * @CreateTime 2024年05月03日 19:58:46
 */
public class Task implements Serializable {
    private Integer taskId; //任务的id
    private Integer userId; //用户id
    private String taskTitle; //任务标题
    private String content; //任务描述
    private Integer tag; //任务的标签
    private Integer taskType; //任务类型（通知型、计时型）
    private String startTime; //开始/通知时间
    private String endTime; //结束时间
    private Integer priority; //任务优先级/重要程度
    private Integer status; //任务状态（进行中、未完成、完成）
    private Double experience; //任务完成后奖励的经验值
    private String remind1; //提醒时间1（如按时提醒、提前5分钟提醒）
    private String remind2; //提醒时间2
    private String remind3; //提醒时间3
    private Integer isRecurring; //是否重复
    private String createdAt; //任务创建时间
    private String updatedAt; //任务更新时间

    public Task() {
    }

    public Task(Integer taskId, Integer userId, String taskTitle, String content, Integer tag, Integer taskType, String startTime, String endTime, Integer priority, Integer status, Double experience, String remind1, String remind2, String remind3, Integer isRecurring, String createdAt, String updatedAt) {
        this.taskId = taskId;
        this.userId = userId;
        this.taskTitle = taskTitle;
        this.content = content;
        this.tag = tag;
        this.taskType = taskType;
        this.startTime = startTime;
        this.endTime = endTime;
        this.priority = priority;
        this.status = status;
        this.experience = experience;
        this.remind1 = remind1;
        this.remind2 = remind2;
        this.remind3 = remind3;
        this.isRecurring = isRecurring;
        this.createdAt = createdAt;
        this.updatedAt = updatedAt;
    }

    public Task(String taskTitle, String createdAt, Integer priority) {
        this.taskTitle = taskTitle;
        this.createdAt = createdAt;
        this.priority = priority;
    }

    public Task( String taskTitle, String startTime, String endTime, Integer priority) {
        this.taskTitle = taskTitle;
        this.startTime = startTime;
        this.endTime = endTime;
        this.priority = priority;
    }

    public Integer getTaskId() {
        return taskId;
    }

    public void setTaskId(Integer taskId) {
        this.taskId = taskId;
    }

    public Integer getUserId() {
        return userId;
    }

    public void setUserId(Integer userId) {
        this.userId = userId;
    }

    public String getTaskTitle() {
        return taskTitle;
    }

    public void setTaskTitle(String taskTitle) {
        this.taskTitle = taskTitle;
    }

    public String getContent() {
        return content;
    }

    public void setContent(String content) {
        this.content = content;
    }

    public Integer getTag() {
        return tag;
    }

    public void setTag(Integer tag) {
        this.tag = tag;
    }

    public Integer getTaskType() {
        return taskType;
    }

    public void setTaskType(Integer taskType) {
        this.taskType = taskType;
    }

    public String getStartTime() {
        return startTime;
    }

    public void setStartTime(String startTime) {
        this.startTime = startTime;
    }

    public String getEndTime() {
        return endTime;
    }

    public void setEndTime(String endTime) {
        this.endTime = endTime;
    }

    public Integer getPriority() {
        return priority;
    }

    public void setPriority(Integer priority) {
        this.priority = priority;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public Double getExperience() {
        return experience;
    }

    public void setExperience(Double experience) {
        this.experience = experience;
    }

    public String getRemind1() {
        return remind1;
    }

    public void setRemind1(String remind1) {
        this.remind1 = remind1;
    }

    public String getRemind2() {
        return remind2;
    }

    public void setRemind2(String remind2) {
        this.remind2 = remind2;
    }

    public String getRemind3() {
        return remind3;
    }

    public void setRemind3(String remind3) {
        this.remind3 = remind3;
    }

    public Integer getIsRecurring() {
        return isRecurring;
    }

    public void setIsRecurring(Integer isRecurring) {
        this.isRecurring = isRecurring;
    }

    public String getCreatedAt() {
        return createdAt;
    }

    public void setCreatedAt(String createdAt) {
        this.createdAt = createdAt;
    }

    public String getUpdatedAt() {
        return updatedAt;
    }

    public void setUpdatedAt(String updatedAt) {
        this.updatedAt = updatedAt;
    }

    @Override
    public String toString() {
        return "Task{" +
                "taskId=" + taskId +
                ", userId=" + userId +
                ", taskTitle='" + taskTitle + '\'' +
                ", content='" + content + '\'' +
                ", tag=" + tag +
                ", taskType=" + taskType +
                ", startTime='" + startTime + '\'' +
                ", endTime='" + endTime + '\'' +
                ", priority=" + priority +
                ", status=" + status +
                ", experience=" + experience +
                ", remind1='" + remind1 + '\'' +
                ", remind2='" + remind2 + '\'' +
                ", remind3='" + remind3 + '\'' +
                ", isRecurring=" + isRecurring +
                ", createdAt='" + createdAt + '\'' +
                ", updatedAt='" + updatedAt + '\'' +
                '}';
    }
}
